// 引入第三方库(package中配置的内容)
// let {JSEncrypt} = require('jsencrypt');
// globalThis.JSEncrypt=JSEncrypt;
// 引入基础工具类 util
import './js/util/AssertUtil.js';
import './js/util/DateUtil.js';
import './js/util/FakeUtil.js';
import './js/util/RandomUtil.js';
import './js/util/RsaUtil.js';
import './js/util/SortUtil.js';
import './js/util/StringUtil.js';
// 引入服务类 service
import './js/service/BeanService.js';
import './js/service/PlayerService.js';

/**
 * @author mmbro
 * @homepage https://gitee.com/mmbro/
 * @date 2021年05月19日18:25:23
 * @description 注释: 第一个加载的js,初始化做的一些事情
 */
class Main {
    static _init;

    /**
     * @description 类名,序列化时记录类型
     * @type {string}
     */
    static cn = 'Main';

    static #instance = (() => globalThis.main = new Main())();

    constructor() {
        this.#init();
    }

    #init = () => {
        // if (typeof (window) === 'undefined') {
        //     window = globalThis;
        //     console.log('init new window object to globalThis:', window);
        // }
        if (!!Main._init) {
            console.log(Main.#instance.cn, 'init already!');
            return;
        }
        console.log(Main.cn, 'init now');
        Main._init = true;
    }

    get instance() {
        return Main.#instance;
    }
}